1 GOTO 11
2 FOR T= 1 TO L:NEXT:POKE FNP(X,V),32
3 X=X+A:V=V+B:IF V=1 THEN A=1-2*RND ELSE IF V=23 THEN 9 ELSE IF PEEK(FNP(X,V))<>219 THEN POKE FNP(X,V),2:GOTO 2
4 IF PEEK(FNP(X,V-B))=32 THEN B=-B:M=M+1 ELSE IF PEEK(FNP(X-A,V))=32 THEN A=-A ELSE A=-A:B=-B:M=M+1
5 PLAY"MBC64":IF M MOD 14 THEN 3 ELSE L=L*.9000001:GOTO 3
6 KEY(12) OFF:KEY(13) OFF:IF D>1 THEN D=D-3:GOTO 8 ELSE 8
7 KEY(12) OFF:KEY(13) OFF:IF D<51 THEN D=D+3
8 LOCATE 22,D:PRINT P$;:PLAY"A64":KEY(12) ON:KEY(13) ON:RETURN
9 KEY(12) OFF:KEY(13) OFF:SOUND 39,11:C=C-1:LOCATE 9,69:PRINT C:IF C=0 THEN 15
10 FOR T=1 TO 2000:NEXT:M=1:RANDOMIZE(C):X=RND*35+10:V=RND*2+2:LOCATE 1,9+C*4:PRINT" ":KEY(12) ON:KEY(13) ON:GOTO 3
11 WIDTH 80:COLOR 4,3,2:CLS:KEY OFF:DEFINT B-V:B=1:C=11:DEF FNP(X,V)=INT(X+.5)*2+V*160:ON KEY(12) GOSUB 6:ON KEY(13) GOSUB 7:LOCATE 10,20:PRINT"Left and right cursor keys move paddle.":LOCATE 12,15:INPUT"Input drag factor: (100 is medium...0 is fast!)";L
12 DEF FNZ=VAL(LEFT$(TIME$,2))*3600+VAL(MID$(TIME$,4,2))*60+VAL(RIGHT$(TIME$,2)):B$="   ":LOCATE 14,20:PRINT"Pick a paddle size: (Small, Medium or Large)":A$=INKEY$:IF A$=""THEN 12 ELSE IF A$="S"OR A$="s"THEN P=3 ELSE IF A$="M"OR A$="m"THEN P=4 ELSE P=5
13 CLS:COLOR 1:LOCATE 24,15:PRINT"Stay on the Ball with PC Magazine";:LOCATE 3,66:PRINT"PChallenge":LOCATE 8,66:PRINT"Balls left":LOCATE 11,65:PRINT"Initial Drag":DEF SEG=0:IF (PEEK(1040) AND 48)=48 THEN DEF SEG=&HB000 ELSE DEF SEG=&HB800
14 P$=B$+STRING$(P,219)+B$:FOR T=0 TO 9:POKE FNP(12+4*T,0),2:NEXT:FOR S=2 TO 54+P:POKE FNP(S,1),219:NEXT:FOR S=2 TO 20:FOR T=0 TO 1:POKE FNP(T+2,S),219:POKE FNP(53+P+T,S),219:NEXT:NEXT:COLOR 4:LOCATE,69:PRINT L:D=25:GOSUB 8:W=FNZ:GOTO 9
15 Z=FNZ:COLOR 1:LOCATE 17,66:PRINT"Time Spent":LOCATE 14,66:PRINT"Final Drag":COLOR 4:LOCATE,69:PRINT L:LOCATE 18,65:PRINT USING"#### seconds";Z-W:LOCATE 20,65:PRINT"Want to play":LOCATE,65:PRINT"AGAIN (Y/N)?"
16 A$=INKEY$:IF A$="Y"OR A$="y"THEN RUN ELSE IF A$="N"OR A$="n"THEN CLS ELSE 16
